
package com.google.code.lebar.bean.response.action;


import java.util.ArrayList;
import java.util.List;


public class Action implements Cloneable
{
    private String uri;
    private String label;
    private String contentType;
    private String Method; // FIXME: to lowercase
    private List<String> params;
    private Integer activityType;
    private Boolean showActivity;
    private String activityMessage;
    private Boolean closeBiw;
    private Integer autoTriggerRange;
    private Boolean autoTrigger;
    private Boolean autoTriggerOnly;

    @Override
    public Action clone()
    {
        Action tClonedAction = new Action();
        tClonedAction.setUri( getUri() );
        tClonedAction.setLabel( getLabel() );
        tClonedAction.setContentType( getContentType() );
        tClonedAction.setMethod( getMethod() );
        tClonedAction.setParams( getParams() == null ? null : new ArrayList<String>( getParams() ) );
        tClonedAction.setActivityType( getActivityType() );
        tClonedAction.setShowActivity( getShowActivity() );
        tClonedAction.setActivityMessage( getActivityMessage() );
        tClonedAction.setCloseBiw( getCloseBiw() );
        tClonedAction.setAutoTriggerRange( getAutoTriggerRange() );
        tClonedAction.setAutoTrigger( getAutoTrigger() );
        tClonedAction.setAutoTriggerOnly( getAutoTriggerOnly() );
        
        return tClonedAction;
    }

    /**
     * @return the uri
     */
    public String getUri()
    {
        return uri;
    }

    /**
     * @return the label
     */
    public String getLabel()
    {
        return label;
    }

    /**
     * @return the contentType
     */
    public String getContentType()
    {
        return contentType;
    }

    /**
     * @return the method
     */
    public String getMethod()
    {
        return Method;
    }

    /**
     * @return the params
     */
    public List<String> getParams()
    {
        return params;
    }

    /**
     * @return the activityType
     */
    public Integer getActivityType()
    {
        return activityType;
    }

    /**
     * @return the showActivity
     */
    public Boolean getShowActivity()
    {
        return showActivity;
    }

    /**
     * @return the activityMessage
     */
    public String getActivityMessage()
    {
        return activityMessage;
    }

    /**
     * @return the closeBiw
     */
    public Boolean getCloseBiw()
    {
        return closeBiw;
    }

    /**
     * @return the autoTriggerRange
     */
    public Integer getAutoTriggerRange()
    {
        return autoTriggerRange;
    }

    /**
     * @return the autoTrigger
     */
    public Boolean getAutoTrigger()
    {
        return autoTrigger;
    }

    /**
     * @return the autoTriggerOnly
     */
    public Boolean getAutoTriggerOnly()
    {
        return autoTriggerOnly;
    }

    /**
     * @param uri
     *            the uri to set
     */
    public void setUri( String uri )
    {
        this.uri = uri;
    }

    /**
     * @param label
     *            the label to set
     */
    public void setLabel( String label )
    {
        this.label = label;
    }

    /**
     * @param contentType
     *            the contentType to set
     */
    public void setContentType( String contentType )
    {
        this.contentType = contentType;
    }

    /**
     * @param method
     *            the method to set
     */
    public void setMethod( String method )
    {
        Method = method;
    }

    /**
     * @param params
     *            the params to set
     */
    public void setParams( List<String> params )
    {
        this.params = params;
    }

    /**
     * @param activityType
     *            the activityType to set
     */
    public void setActivityType( Integer activityType )
    {
        this.activityType = activityType;
    }

    /**
     * @param showActivity
     *            the showActivity to set
     */
    public void setShowActivity( Boolean showActivity )
    {
        this.showActivity = showActivity;
    }

    /**
     * @param activityMessage
     *            the activityMessage to set
     */
    public void setActivityMessage( String activityMessage )
    {
        this.activityMessage = activityMessage;
    }

    /**
     * @param closeBiw
     *            the closeBiw to set
     */
    public void setCloseBiw( Boolean closeBiw )
    {
        this.closeBiw = closeBiw;
    }

    /**
     * @param autoTriggerRange
     *            the autoTriggerRange to set
     */
    public void setAutoTriggerRange( Integer autoTriggerRange )
    {
        this.autoTriggerRange = autoTriggerRange;
    }

    /**
     * @param autoTrigger
     *            the autoTrigger to set
     */
    public void setAutoTrigger( Boolean autoTrigger )
    {
        this.autoTrigger = autoTrigger;
    }

    /**
     * @param autoTriggerOnly
     *            the autoTriggerOnly to set
     */
    public void setAutoTriggerOnly( Boolean autoTriggerOnly )
    {
        this.autoTriggerOnly = autoTriggerOnly;
    }
}
